Unless otherwise indicated herein, known approaches described are not admitted to be prior art by inclusion throughout the present disclosure.
Virtualization allows the abstraction and pooling of hardware resources to support virtual machines in a virtualized computing environment. For example, through server virtualization, virtual machines running different operating systems may be supported by the same physical machine (e.g., referred to as a “host”). Each virtual machine is generally provisioned with virtual resources to run an operating system and applications. The virtual resources may include central processing unit (CPU) resources, memory resources, storage resources, network resources, etc. Virtualization software (e.g., hypervisor) running on the physical machine is generally used to maintain a mapping between the virtual resources allocated to each virtual machine and the underlying physical resources of the physical machine.
In practice, since a single physical machine can support tens to hundreds of virtual machines, it can be challenging to manage the sharing of physical resources (e.g., network resources) among different virtual machines, and different applications supported by each virtual machine.